{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.svm import LinearSVC\n",
    "from sklearn import datasets\n",
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.preprocessing import StandardScaler"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Pipeline(steps=[('std', StandardScaler()), ('linear_svc', LinearSVC(C=1))])"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris = datasets.load_iris()\n",
    "x = iris.data[:,(2,3)]\n",
    "y = (iris.target == 2).astype(np.float64)\n",
    "svm_clf = Pipeline((\n",
    "    ('std',StandardScaler()),\n",
    "    ('linear_svc',LinearSVC(C=1))\n",
    "\n",
    "))\n",
    "svm_clf.fit(x,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1., 0.])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svm_clf.predict([[5.5,1.7],[1.5,.2]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\python3.8\\lib\\site-packages\\sklearn\\svm\\_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Pipeline(steps=[('std', StandardScaler()), ('linear_svc', LinearSVC(C=100))])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "scaler = StandardScaler()\n",
    "svm_clf1 = LinearSVC(C=1)\n",
    "scaler_svm_clf1 = Pipeline((\n",
    "    ('std',scaler),\n",
    "    ('linear_svc',svm_clf1)\n",
    "\n",
    "))\n",
    "svm_clf2 = LinearSVC(C=100)\n",
    "scaler_svm_clf2 = Pipeline((\n",
    "    ('std',scaler),\n",
    "    ('linear_svc',svm_clf2)\n",
    "\n",
    "))\n",
    "scaler_svm_clf1.fit(x,y)\n",
    "scaler_svm_clf2.fit(x,y)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "b1 = svm_clf1.decision_function([-scaler.mean_/scaler.scale_])\n",
    "b2 = svm_clf2.decision_function([-scaler.mean_/scaler.scale_])\n",
    "w1 = svm_clf1.coef_[0] / scaler.scale_\n",
    "w2 = svm_clf2.coef_[0] / scaler.scale_\n",
    "\n",
    "svm_clf1.intercept_ = np.array([b1])\n",
    "svm_clf2.intercept_ = np.array([b2])\n",
    "svm_clf1.coef_ = np.array([w1])\n",
    "svm_clf2.coef_ = np.array([w2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_svc_bd(svm_clf,start,end,sv=True):\n",
    "    w =svm_clf.coef_[0]\n",
    "    b = svm_clf.intercept_[0]\n",
    "    x0 = np.linspace(start,end,200)\n",
    "    decision_bd = -w[0]/w[1] * x0 -b/w[1]\n",
    "    margin = 1/w[1]\n",
    "    up = decision_bd + margin \n",
    "    down = decision_bd - margin \n",
    "    plt.plot(x0,decision_bd,'k-' ,linewidth=2)\n",
    "    plt.plot(x0,up,'k--' ,linewidth=2)\n",
    "    plt.plot(x0,down,'k--' ,linewidth=2)\n",
    "\n",
    "    if(sv== True):\n",
    "        svs = svm_clf.support_vectors_\n",
    "        plt.scatter(svs[:,0],svs[:,1],s=180,facecolors='#FAA')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4.0, 6.0, 0.8, 2.8)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1008x302.4 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(14,4.2))\n",
    "plt.subplot(121)\n",
    "plt.plot(x[:,0][y==1],x[:,1][y==1],'g^')\n",
    "plt.plot(x[:,0][y==0],x[:,1][y==0],'bs')\n",
    "plot_svc_bd(svm_clf1,4,6,False)\n",
    "plt.axis([4,6,0.8,2.8])\n",
    "\n",
    "plt.subplot(122)\n",
    "plt.plot(x[:,0][y==1],x[:,1][y==1],'g^')\n",
    "plt.plot(x[:,0][y==0],x[:,1][y==0],'bs')\n",
    "plot_svc_bd(svm_clf2,4,6,False)\n",
    "plt.axis([4,6,0.8,2.8])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.datasets import make_moons\n",
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "x,y = make_moons(n_samples=100,noise=0.1,random_state=42)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plot_df(x,y,axes):\n",
    "   plt.plot(x[:,0][y==0],x[:,1][y==0],'bs')\n",
    "   plt.plot(x[:,0][y==1],x[:,1][y==1],'g^')\n",
    "   plt.axis(axes)\n",
    "   plt.grid(True,which='both')\n",
    "   plt.xlabel(r\"$x_1$\",fontsize=20)\n",
    "   plt.xlabel(r\"$x_2$\",fontsize=20,rotation=0)\n",
    "plot_df(x,y,[-1.5,2.5,-1,1.5])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\python3.8\\lib\\site-packages\\sklearn\\svm\\_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Pipeline(steps=[('poly_feature', PolynomialFeatures(degree=3)),\n",
       "                ('scaler', StandardScaler()),\n",
       "                ('svm_clf', LinearSVC(C=10, loss='hinge'))])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "polynomial__svm_clf = Pipeline((\n",
    "    ('poly_feature',PolynomialFeatures(degree=3)),\n",
    "    ('scaler',StandardScaler()),\n",
    "    ('svm_clf',LinearSVC(C=10,loss='hinge'))\n",
    "))\n",
    "polynomial__svm_clf.fit(x,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plot_prediction(clf,axes):\n",
    "    #X轴划分\n",
    "    x0s = np.linspace(axes[0],axes[1],100)\n",
    "    #y轴划分\n",
    "    x1s = np.linspace(axes[2],axes[3],100)\n",
    "    #预测特征\n",
    "    x0,x1 = np.meshgrid(x0s,x1s)\n",
    "    #交叉合并\n",
    "    x= np.c_[x0.ravel(),x1.ravel()]\n",
    "    #分类预测结果\n",
    "    pred = clf.predict(x).reshape(x0.shape)\n",
    "    #绘制决策编辑\n",
    "    plt.contourf(x0,x1,pred,cmap=plt.cm.brg,alpha=.2)\n",
    "plot_prediction(polynomial__svm_clf,[-1.5,2.5,-1,1.5])\n",
    "plot_df(x,y,[-1.5,2.5,-1,1.5])\n",
    "    \n",
    "    "
   ]
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "8bfad08b73d8ae58273d7e252c9e1d922058e2a21d3a8ccb2a1b9808ae54a57f"
  },
  "kernelspec": {
   "display_name": "Python 3.8.0 32-bit",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.0"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
